/**
 * 计算上传速度
 * @param currentLoaded 当前已上传大小（字节）
 * @param lastLoaded 上一次已上传大小（字节）
 * @param lastTime 上一次计算时间（时间戳）
 * @returns 速度文本（如 "2.5 MB/s"）
 */
export function calcUploadSpeed(
  currentLoaded: number,
  lastLoaded: number,
  lastTime: number
): { speedText: string; newLastLoaded: number; newLastTime: number } {
  const now = Date.now();
  const timeDiff = (now - lastTime) / 1000; // 秒
  const sizeDiff = (currentLoaded - lastLoaded) / 1024; // KB

  let speedText = "0 KB/s";
  if (timeDiff > 0.5 && sizeDiff > 0) {
    // 超过0.5秒且有数据才更新（避免波动过大）
    const speed = sizeDiff / timeDiff;
    speedText = speed >= 1024 
      ? `${(speed / 1024).toFixed(2)} MB/s` 
      : `${Math.ceil(speed)} KB/s`;
  }

  return {
    speedText,
    newLastLoaded: currentLoaded,
    newLastTime: now
  };
}

/**
 * 格式化文件大小（字节 → MB/KB）
 */
export function formatFileSize(bytes: number): string {
  if (bytes >= 1024 * 1024) {
    return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
  }
  return `${(bytes / 1024).toFixed(1)} KB`;
}